草庐IT

SQL INSERT INTO SELECT 语句

全部标签

php - 为什么一行 mysql 查询/获取数组语句不起作用?

这个问题我遇到过很多次了,一直搞不明白为什么会这样。当我构建如下所示的MySQL语句时,它工作得很好:$sql=mysql_query("SELECT*FROMtableWHEREid='$something'");while($row=mysql_fetch_array($sql)){$someVar=$row['whatever'];//andsoon}但是当我将前两个语句组合成以下内容时:while($row=mysql_fetch_array(mysql_query("SELECT*FROMtableWHEREid='$something'")))并尝试循环遍历它们,页面似乎无

php - Mysql PDO Prepared语句效率

我正在接管一个PHP应用程序,该应用程序在每次运行SQL语句时都使用MySQLPDO准备好的语句。我知道当您要对同一语句进行多次迭代时,准备SQL会更有效率。$sth=$dbh->prepare('SELECTname,colour,caloriesFROMfruitWHEREcaloriesexecute(array(150,'red'));$red=$sth->fetchAll();$sth->execute(array(175,'yellow'));$yellow=$sth->fetchAll();但是,我正在接管的应用程序在PDO之上构建了一个调用通用“执行”函数的层,它似乎准

php - MySQL中SQL语句的问题

我正在运行一条SQL语句:$sql="SELECTpic,useridFROMuser_detailsINNERJOINwp_usersONuser_details.useridWHEREwp_users.id=user_details.useridLIMIT$recordstart,$pagesize";查询旨在从user_details和wp_users中选择记录,但应该只在匹配项(wp_users.id=user_details.userid)时选择。目标是它基本上从一个表中选择,同时从另一个表中检索记录(基于id匹配)问题是它显示了重复的记录。我该如何解决这个问题?

mysql - group by 语句的前 2 个结果?

我有一个表“record:id,name,score”,想查询每个名字的2个最高分。我正在使用groupby来获得最高分:selectname,max(score)asscorefromrecordgroupbynameorderbyscore但我认为使用groupby不可能获得2个最高分,我如何获得它们? 最佳答案 SELECTname,scoreFROMrecordR1WHERE(SELECTCOUNT(DISTINCTscore)FROMrecordR2WHERER2.name=R1.nameANDR2.score>=R1.s

mysql - 如何将查询结果用作 SELECT 语句中的列名

我的最终目标是在MySQL中创建一个数据透视TableView,其中包含基于另一个表的内容的动态列。目前我正试图从哪里继续artfulsoftware离开;现在我可以查询给我想要的列名的结果。不幸的是,我不知道如何实际使用结果作为SELECT语句中的列名。我怀疑MySQL变量会有帮助,但我想不通。为了澄清问题,假设我有一个像这样的表:+---------------------------------------------------+|countpivotarg|+---------------------------------------------------+|,SUM(I

Python mysql 是准备好的语句还是我需要 escape_string()?

这也是:cursor.execute("InsertINTOvisit(pid,date,diagnosisid)VALUES(%s,%s,%s)",(pid,date,diagnosisid))足够还是我需要:cursor.execute("InsertINTOvisit(pid,date,diagnosisid)VALUES(%s,%s,%s)",(escape_string(pid),escape_string(date),escape_string(diagnosisid)))? 最佳答案 第一个就够了;第二个会让你的努力加

php - MySQL语句选择列不是数字的地方

我运行的脚本有问题,因此我需要选择所有包含非直线整数值的行。我该怎么做呢?ISSTRING在Google搜索中,但我收到一条错误消息,指出ISSTRING不存在。:(到目前为止,我已经弄糊涂了:SELECTid,area,cityFROM`homes`WHEREISSTRING(`area`)ORISSTRING(`city`)没有任何运气...... 最佳答案 RegExp有效,但我要做的是检查abs()是否等于零并且该字段不为零。我认为这会比RegExp更快。SELECTid,area,cityFROM`homes`WHERE(

php - 使用 MySql、PHP 和 ADODB 在准备好的语句中参数化 IN 子句

我正在编写一些SQL并使用AdoDb连接到我的数据库并运行查询等。我正在使用参数化查询,但遇到了问题。它们是一种将值数组传递给AdoDb/MySql中的in_clause以进行参数化的方法。我的问题是,如果我将准备好的字符串作为参数传递,即'test','test2','test3'它不起作用,因为库或数据库会自动转义它并添加外部开头和结尾的引号,因此所有内部引号都会自动转义,因此查询在查找'\'test\',\'test2\',\'test3\''时不返回任何内容而不是我喂它的东西。更新了另一种可能的方法来实现这一点Param('first_names').")"$stmt=$DB-

mysql - 为什么行会匹配但不会被 mysql 更新语句更改?

我习惯使用MSSQL,而不是Mysql,对于这个可能很愚蠢的问题,我深表歉意。我正在尝试更新我正在通过运行以下查询设置的备份数据库的密码:updateuserssetpassword=md5('pass')whereusername='admin'当我运行它时它说QueryOK,0rowsaffected(0.01sec)Rowsmatched:1Changed:0Warnings:0为什么一行匹配但没有改变? 最佳答案 这意味着该值未更改。它可能没有更改,因为该列已经等于pass的md5哈希值。

php - if, else if echo 语句

如果值为1,则单元格bg为绿色,单元格中的#1如果值为0,则单元格bg为黄色,其中包含0。我想显示"is"而不是“1”和“否”而不是“0”if($row['play']==1){echo"".$row['play']."";}elseif($row['play']==0){echo"".$row['play']."";}值来自复选框(1)和隐藏字段(0)MySQL字段是BOOL。是否有更简单/更好的方法来实现这一点? 最佳答案 你可以这样做:if($row['play']==1){echo"Yes";}elseif($row['pl